using System;

namespace SharpMud.MudLib.SAMPLE.Messaging.Act
{
	/// <summary>
	/// This interface represents a message that is to be given to whatever is handling the logic
	/// for the target character. A Telnet Session will always accept the 'ToAbsoluteValue()' expression,
	/// but complicated mob ai's will use reflection to determine specific types of messages and how
	/// to process them.
	/// </summary>
	public interface IActMessage
	{
		/// <summary>
		/// Gets the list of parameters that constitute this IActMessage
		/// </summary>
		IActMessageParameter[]			Parameters			{get;}

		/// <summary>
		/// Generates an 'absolute' form of this IActMessage.
		/// (Ideally, something that could be written to a TelnetCharacterSession.)
		/// </summary>
		string							ToAbsoluteValue();
	}
}
